package cn.iocoder.yudao.module.system.dal.dataobject.application;

import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 目录审批 DO
 *
 * @author 芋道源码
 */
@TableName("approval_application")
@KeySequence("approval_application_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ApplicationDO {

    /**
     * 主键id
     */
    @TableId
    private Integer id;
    /**
     * 目录ID
     */
    private String catalogId;
    /**
     * 表单类型(1-3(ETL，数据集，接口))
     */
    private String applicationType;
    /**
     * 申请标题
     */
    private String applicationTitle;
    /**
     * 申请原因
     */
    private String applicationReason;
    /**
     * 应用场景
     */
    private String applicationScenario;
    /**
     * 使用时间起始
     */
    private LocalDateTime useTimeStart;
    /**
     * 使用时间结束
     */
    private LocalDateTime useTimeEnd;
    /**
     * 联系电话
     */
    private String contactPhone;
    /**
     * 联系地址
     */
    private String contactAddress;
    /**
     * 服务范围
     */
    private String serviceScope;
    /**
     * 预期成效
     */
    private String expectedEffect;
    /**
     * 系统名称
     */
    private String systemName;
    /**
     * 部署地点
     */
    private String deploymentLocation;
    /**
     * 系统IP
     */
    private String systemIp;
    /**
     * 系统URL
     */
    private String systemUrl;
    /**
     * 等级保护备案号
     */
    private String levelProtectionCode;
    /**
     * 等保级别
     */
    private String levelProtectionLevel;
    /**
     * 承诺书文件路径
     */
    private String commitmentFile;

    /**
     * 申请书文件
     */
    private String applyFile;
    /**
     * 调用次数限制
     */
    private String callCountLimit;
    /**
     * 调用间隔(秒)
     */
    private String callIntervalSeconds;
    /**
     * 目标数据库地址
     */
    private String targetDatabaseAddress;
    /**
     * 目标数据库表名
     */
    private String targetDatabaseTableName;
    /**
     * 状态：0 未提交、1 已提交、2 审核中、3 审核不通过、4 审核通过
     */
    private String status;
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    /**
     * 提交时间
     */
    private LocalDateTime commitTime;

    private String createBy;

    @TableField(exist = false)
    private String recordId;
    @TableField(exist = false)
    private String nodeCode;
    @TableField(exist = false)
    private String nodeName;
    @TableField(exist = false)
    private String applicationId;


}
